home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / basic / smallfnt.zip / SMALLFNT.BAS < prev    next >
BASIC Source File  |  1990-02-15  |  2KB  |  55 lines

  1. SUB InitSmallFont (SmallFont%())
  2.    OPEN "smallfnt.dat" FOR BINARY AS #1
  3.    FOR tmp% = 0 TO 319
  4.       GET #1, , SmallFont%(tmp%)
  5.    NEXT
  6.    CLOSE #1
  7.    SmallFont%(320) = &H101             ' cursor position
  8. END SUB
  9.  
  10. SUB SmallLocate (SmallFont%(), Row%, Column%)
  11.    SmallFont%(320) = CVI(CHR$(Column%) + CHR$(Row%))
  12. END SUB
  13.  
  14. SUB SmallPrint (SmallFont%(), Text$)
  15.    REDIM Scroll%(1 TO 8002)
  16.    tmp$ = MKI$(SmallFont%(320))
  17.    y% = ASC(RIGHT$(tmp$, 1))
  18.    x% = ASC(LEFT$(tmp$, 1))
  19.    FOR tmp% = 1 TO LEN(Text$)
  20.       ch% = ASC(UCASE$(CHR$(ASC(MID$(Text$, tmp%, 1)) AND &H7F)))
  21.       IF ch% > 122 THEN               ' high ASCII character, convert it
  22.          ch% = (ch% - 59) * 5
  23.       ELSEIF ch% = 32 THEN            ' space
  24.          x% = x% + 1
  25.          ch% = -1
  26.       ELSEIF ch% = 13 THEN            ' carriage return
  27.          x% = 1
  28.          ch% = -1
  29.       ELSEIF ch% = 10 THEN            ' linefeed
  30.          y% = y% + 1
  31.          ch% = -1
  32.       ELSEIF ch% = 8 THEN             ' backspace
  33.          IF x% > 1 THEN x% = x% - 1
  34.          ch% = -1
  35.       ELSE                            ' low ASCII character, convert it
  36.          ch% = (ch% - 33) * 5
  37.       END IF
  38.       IF ch% >= 0 AND ch% <= 315 THEN
  39.          PUT ((x% - 1) * 6, (y% - 1) * 6), SmallFont%(ch%), PSET
  40.          x% = x% + 1
  41.       END IF
  42.       IF x% > 106 THEN                ' wrap to next line
  43.          x% = 1
  44.          y% = y% + 1
  45.       END IF
  46.       IF y% > 33 THEN                 ' scroll the screen
  47.          GET (0, 6)-(639, 197), Scroll%
  48.          PUT (0, 0), Scroll%, PSET
  49.          LINE (0, 192)-(639, 197), 0, BF
  50.          y% = 33
  51.       END IF
  52.    NEXT
  53.    SmallFont%(320) = CVI(CHR$(x%) + CHR$(y%))
  54. END SUB
  55.